$(function () {
	const layer = layui.layer;
	const form = layui.form;
	// 定义一个请求对象，在请求到数据时将请求到的参数传到服务器
	const q = {
		pagenum: 1, // 页码值 默认1
		pagesize: 2, // 一行数据显示   默认2
		cate_id: '', // 文章分类的Id
		state: '' // 文章分类的状态
	};
	initTable();
	// 使用模板引擎获取列表数据
	function initTable() {
		$.ajax({
			method: 'GET',
			url: '/my/article/list',
			data: q,
			success(res) {
				if (res.status !== 0) {
					return layer.msg('获取文章列表失败！');
				}
				// console.log(res);
				const html = template('tpl-table', res);
				$('tbody').html(html);
				// 调用分页方法
				renderPage(res.total);
			}
		});
	}
	// 美化时间过滤器
	template.defaults.imports.dataFormat = function (date) {
		const dt = new Date(date);
		const y = dt.getFullYear();
		const m = padZero(dt.getMonth() + 1);
		const d = padZero(dt.getDate());

		const hh = padZero(dt.getHours());
		const mm = padZero(dt.getMinutes());
		const ss = padZero(dt.getSeconds());
		return `${y}-${m}-${d} ${hh}:${mm}:${ss}`;
	};
	// 补零函数
	function padZero(n) {
		return n > 9 ? n : '0' + n;
	}
	// Number.prototype.padZero = function () {
	// 	return String.prototype.padStart.call(this,argArray2, '0');
	// };
	// 下拉获取动态分类
	function initCate() {
		$.ajax({
			method: 'GET',
			url: '/my/article/cates',
			success(res) {
				if (res.status !== 0) {
					return layer.msg('获取分类数据失败！');
				}
				// console.log(res);
				// 调用模板引擎渲染分类DOM结构
				const htmlStr = template('tpl-cate', res);
				// console.log(htmlStr);
				$('[name=cate_id').html(htmlStr);
				// layui的扁担重新渲染方法render
				form.render();
			}
		});
	}
	initCate();

	// 筛选表单绑定事件
	$('#form-search').on('submit', function (e) {
		e.preventDefault();
		// 获取表单数据
		const cate_id = $('[name=cate_id]').val();
		const state = $('[name=state]').val();
		// 赋值给数据data
		q.cate_id = cate_id;
		q.state = state;
		// 重新刷新表单
		initTable();
	});

	// 定义渲染分页的方法  参数接受总数值
	function renderPage(total) {
		// console.log(total);
		layui.laypage.render({
			elem: 'page-box', // 分页容器Id
			count: total, //数据总数，从服务端得到
			limit: q.pagesize, // 每页显示几条数据
			curr: q.pagenum, // 设置默认选中的分页
			layout: ['count', 'limit', 'prev', 'page', 'next', 'skip'],
			limits: [2, 4, 6, 8], // 每页展示多少条
			jump: function (obj, first) {
				//obj包含了当前分页的所有参数，比如：
				console.log(obj.curr); //得到当前页，以便向服务端请求对应页的数据。
				q.pagenum = obj.curr;
				console.log(obj.limit); //得到每页显示的条数
				q.pagesize = obj.limit;
				//首次不执行
				if (!first) {
					//刷新数据列表
					initTable();
				}
			}
		});
	}

	// 删除功能实现  通过自定义属性
	$('body').on('click', '#btn-delete', function () {
		const id = $(this).attr('data-id');
		// 获取删除按钮长度
		const len = $('#btn-delete').length;
		layer.confirm('确认删除此文章吗？', { icon: 3, title: '提示' }, function (index) {
			$.ajax({
				method: 'GET',
				url: '/my/article/delete/' + id,
				success(res) {
					if (res.status !== 0) {
						return layer.msg('删除失败！');
					}
					layer.msg(res.message);
					// 页码值进行自动减一  判断删除按钮是否为1
					// if (len === 1) {
					// 	q.pagenum = q.pagenum === 1 ? 1 : q.pagenum--;
					// }
					if (len === 1 && q.pagenum > 1) {
						q.pagenum--;
					}
					// 刷新页面
					initTable();
				}
			});
			layer.close(index);
		});
	});
});
